package edu.asselvi.seguros.controle;

import java.io.BufferedReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import edu.asselvi.seguros.dao.CidadeDao;
import edu.asselvi.seguros.dao.EstadoDao;
import edu.asselvi.seguros.db.ConnectionFactory;
import edu.asselvi.seguros.db.DbUtils;
import edu.asselvi.seguros.exception.ESegurosErrosGeral;
import edu.asselvi.seguros.exception.SegurosException;
import edu.asselvi.seguros.pojo.Cidade;
import edu.asselvi.seguros.pojo.Estado;


public class ControleCidade extends DbUtils{

	BufferedReader in = null;

	public ControleCidade(BufferedReader br) {
		this.in = br; 
	}
	
	public void cadastrar() {

		Connection conn = null;
		
		try {
			
			conn = new ConnectionFactory().getConnection();
			
			Cidade cidade = new Cidade();
			
			//primeiro lista todos os estados cadastrados
			System.out.println("SELECIONE UM ESTADO CADASTRADO");
			List<Estado> estados = new EstadoDao(conn).list();
			for (Estado estado : estados) {
				System.out.println(estado.toString());
			}
			//depois entra com os dados da cidade
			System.out.println("CODIGO: ");
				cidade.setFk_id_estado(Integer.parseInt(in.readLine()));

				
			System.out.println("DIGITE O NOME DA CIDADE: ");
				cidade.setNome(in.readLine());
			
			//salva no banco
			cidade = new CidadeDao(conn).insert(cidade); 
			System.out.println(cidade.toString());
			
		} catch (SegurosException e) {
			System.err.println(e.getMessage());
			
		} catch (IOException e) {
			System.err.println(ESegurosErrosGeral.ERRO_TECLADO);
			
		} catch (SQLException e) {
			System.err.println(ESegurosErrosGeral.ERRO_DE_CONEXAO);
			
		} catch (NumberFormatException e) {
			System.err.println(ESegurosErrosGeral.ERRO_DE_FORMATO);
			
		} finally {
			close(conn);
		}
	}
}
